<?php
/**
 * Ce fichier contient la classe generateur_adjectifs.
 *
 * @copyright  2011 Kahina AZAOUN
*/


class Models_DbTable_generateur_adjectifs extends Zend_Db_Table_Abstract
{
    
    /**
     * Nom de la table.
     */
    
    /**
     * Clef primaire de la table.
     */
    protected $_primary = 'id_adj';
    
    protected $_referenceMap    = array(
        'Dico' => array(
            'columns'           => 'id_dico',
            'refTableClass'     => 'Model_DbTable_Dicos',
            'refColumns'        => 'id_dico'
        )
        );  
    
    
    /**
     * V&eacute;rifie si une entr&eacute;e gen_adjectifs existe.
     *
     * @param array $data
     *
     * @return integer
     */
    public function existe($data)
    {
		$select = $this->select();
		$select->from($this, array('id_adj'));
		foreach($data as $k=>$v){
			$select->where($k.' = ?', $v);
		}
	    $rows = $this->fetchAll($select);        
	    if($rows->count()>0)$id=$rows[0]->id_adj; else $id=false;
        return $id;
    } 
        
    /**
     * Ajoute une entr&eacute;e gen_adjectifs.
     *
     * @param array $data
     * @param boolean $existe
     *  
     * @return integer
     */
    public function ajouter($data, $existe=FALSE)
    {
    	$id=false;
    	if($existe)$id = $this->existe($data);
    	if(!$id){
    	 	$id = $this->insert($data);
    	}
    	//return $id;	
    	return $this->findById_adj($id);
    } 
   
           
    /**
     * Recherche une entr&eacute;e Gen_adjectifs avec la clef primaire sp&eacute;cifi&eacute;e
     * et modifie cette entr&eacute;e avec les nouvelles donn&eacute;es.
     *
     * @param integer $id
     * @param array $data
     *
     * @return void
     */
    public function edit($id, $data)
    {        
        $this->update($data, 'gen_adjectifs.id_adj = ' . $id);
    }
    
    /**
     * Recherche une entr&eacute;e Generateur_adjectifs avec la clef primaire sp&eacute;cifi&eacute;e
     * et supprime cette entr&eacute;e.
     *
     * @param integer $id
     *
     * @return void
     */
    public function remove($id)
    {
        $this->delete('gen_adjectifs.id_adj = ' . $id);
    }
    
    /**
     * R&eacute;cup&egrave;;re toutes les entr&eacute;es gen_adjectifs avec certains crit&egrave;;res
     * de tri, intervalles
     */
    public function getAll($order=null, $limit=0, $from=0)
    {
        $query = $this->select()
                    ->from( array("gen_adjectifs" => "gen_adjectifs") );
                    
        if($order != null)
        {
            $query->order($order);
        }

        if($limit != 0)
        {
            $query->limit($limit, $from);
        }

        return $this->fetchAll($query)->toArray();
    }
    /**
     * Récupère les spécifications des colonnes gen_adjectifs 
     */
    public function getCols(){

        $arr = array("cols"=>array(
        array("titre"=>"id_adj","champ"=>"id_adj","visible"=>true),
        array("titre"=>"id_dico","champ"=>"id_dico","visible"=>true),
        array("titre"=>"elision","champ"=>"elision","visible"=>true),
        array("titre"=>"prefix","champ"=>"prefix","visible"=>true),
        array("titre"=>"m_s","champ"=>"m_s","visible"=>true),
        array("titre"=>"f_s","champ"=>"f_s","visible"=>true),
        array("titre"=>"m_p","champ"=>"m_p","visible"=>true),
        array("titre"=>"f_p","champ"=>"f_p","visible"=>true),
                        
                ));     
        return $arr;
                
    }   
    
public function findByid_adj($id_adj)
    {
        $query = $this->select()
                    ->from( array("g" => "gen_adjectifs") )                           
                    ->where( "g.id_adj = ?", $id_adj );

        return $this->fetchAll($query)->toArray(); 
    }  
    }



